package com.laf.service;

import com.laf.model.Notice;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @author: He Changjie  on  2018-09-28
 * @description:
 */
public interface NoticeService {

    /**
     * 更新启事
     * @param notice 启事
     * @return 被更新的行数
     */
    public int update(Notice notice);

    /**
     * 删除启事
     * @param id 启事编号
     * @return 被更新的行数
     */
    public  int delete(Integer id);

    /**
     * 得到所有招领启事的数量
     * @return 所有招领启事的数量
     */
    public int foundTotal();

    /**
     * 得到所有寻物启事的数量
     * @return 所有寻物启事的数量
     */
    public int lostTotal();

    /**
     * 得到近三天招领启事的数量
     * @return 近三天招领启事的数量
     */
    public int foundThreeDay();

    /**
     * 得到近三天寻物启事的数量
     * @return 近三天寻物启事的数量
     */
    public int lostThreeDay();

    /**
     * 得到成功找回的物品数量
     * @return 成功找回的物品数量
     */
    public int getBack();

    /**
     * 通过启事编号查找对应启事
     * @param noticeId 启事编号
     * @return 启事
     */
    public Notice findById(String noticeId);

    /**
     * 添加一个启事
     * @param notice 启事
     * @return 被更新的行数
     */
    public int save(Notice notice);

    /**
     * 返回所有未被删除的寻物启事集合
     * @return 所有未被删除的寻物启事LIST
     */
    public List<Notice> findAllLost();

    /**
     * 返回所有未被删除的招领启事集合
     * @return 所有未被删除的招领启事LIST
     */
    public List<Notice> findAllFound();
    /**
     * 通过筛选条件 搜索启事信息，并返回符合的启事list
     * @param notice 启事model（内含筛选信息）
     * @param pageNum 当前页号
     * @param pageSize 页尺寸
     * @param type 启事类型
     * @return 启事list
     */
    public List<Notice> selectByPage(Notice notice,int pageNum,int pageSize,int type);

    /**
     * 管理员分类查询所有启事
     * @param cateId 类别
     * @param title 启事标题
     * @param lowTime 开始时间
     * @param hiTime 结束时间
     * @param type 寻物/招领：1/0
     * @return List<Notice>
     */
    List<Notice> queryAll(String cateId,String title,String lowTime,String hiTime,int type);

}
